package com.sprouting.personal.model.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.sprouting.personal.annotations.CheckLength;
import com.sprouting.personal.annotations.CheckNotNull;
import com.sprouting.personal.model.common.BaseModel;
import lombok.Data;

/**
 * 用户关系表
 *
 * @author ：LX（长沙麓谷）
 * @date 创建时间： 2022/9/19 1:29
 */
@TableName("ps_join")
@Data
public class Join extends BaseModel {

    /**
     * 主键
     */
    private String id;
    /**
     * 隶属用户ID
     */
    private String userId;
    /**
     * 父级ID
     */
    private String sourceId;
    /**
     * 子ID
     */
    private String targetId;
    /**
     * 连接类型，来自 {@link DictGroup#getCode() 中的 Constant.RetainDictGroup.MEMBER_OF_FAMILY}
     * 连接类型，来自 {@link DictGroup#getCode() 中的 Constant.RetainDictGroup.SOCIAL_NETWORKS_GROUP}
     * @see Dict#getId()
     */
    @CheckNotNull(message = "请选择连接类型")
    private String connectionTypeId;
    /**
     * 关系说明-父级和子级的关系说明
     * 这个是更深入的说明，上面的连接类型比如是 村名，这里会有补充说明之类的
     */
    @CheckLength(min = 1, max = 300, message = "关系说明超过长度限制")
    @CheckNotNull(message = "请输入关系说明")
    private String dataExplain;
    /**
     * 父母对他的称呼
     */
    private String callParent;
    /**
     * 我对他的称呼,必填
     */
    @CheckLength(min = 1, max = 300, message = "我对他的称呼超过长度限制")
    @CheckNotNull(message = "请输入我对他的称呼")
    private String call;
    /**
     * 子女对它的称呼
     */
    private String callSon;


}
